$(function () {
    // alert('啊啊啊');

    // 给四项必填框分别注册失焦验证
    $('.username').on('blur', usernameCheck);
    $('.pwd').on('blur', pwdCheck);
    $('.email').on('blur', emailCheck);
    $('.nickname').on('blur', nicknameCheck)


    // 验证用户名
    function usernameCheck() {
        // alert(1);

        // 获取用户输入的用户名
        let usernameVal = $('.username').val();
        // console.log(usernameVal);

        // 定义验证规则
        // 帐号是否合法(字母开头，允许5-16字节，允许字母数字下划线)：^[a-zA-Z][a-zA-Z0-9_]{4,15}$
        let reg = /^[a-zA-Z][a-zA-Z0-9_]{4,15}$/;

        let flag = reg.test(usernameVal);
        // console.log(res);  // admin

        // 判断: res为true,合法,需要验证是否已被注册; res为false,不合法
        if (flag) {
            // 1.输入格式合法
            // $('.username').siblings('span').text('用户名格式正确!').css('color', 'green');
            // flag=true;
            // 2.验证输入用户名是否重名
            $.ajax({
                url: 'http://139.9.177.51:3333/p2p/accrepeat',
                type: 'POST',
                data: {
                    username: usernameVal
                    // es6语法: 如果传参键值一样,可以只写一个
                },
                dataType: 'json',
                async: false,
                success: function (result) {
                    // console.log(result);
                    // 判断 result.code
                    if (result.code == 200) {
                        $('.username').siblings('span').text('用户名可以使用!').css('color', 'green');
                        flag = true;
                    } else {
                        $('.username').siblings('span').text('用户名已存在!').css('color', 'red');
                        $('.username').focus();
                        flag = false;
                    }
                }
            })
        } else {
            // 输入格式不合法
            $('.username').siblings('span').text('用户名格式错误!').css('color', 'red');
            $('.username').focus();
            flag = false;
        }
        return flag;
    }

    // 验证密码
    function pwdCheck() {
        // alert('aaa');

        // 动态获取用户输入的密码
        let pwdVal = $('.pwd').val();
        // console.log(pwdVal);

        // 定义密码输入规则  
        // 密码(以字母开头，长度在6~18之间，只能包含字母、数字和下划线)：^[a-zA-Z]\w{5,17}$
        let reg = /^[a-zA-Z]\w{5,17}$/;

        let flag = reg.test(pwdVal);

        // 判断 flag是否合法
        if (flag) {
            $('.pwd').siblings('span').text('密码输入正确!').css('color', 'green');
            flag = true;
        } else {
            $('.pwd').siblings('span').text('密码输入不合法!').css('color', 'red');
            $('.pwd').focus();
            flag = false;
        }
        return flag;
    }

    // 验证邮箱
    function emailCheck() {
        // alert('bb');
        let emailVal = $('.email').val();
        // console.log(emailVal);

        // Email地址：^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
        let reg = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;

        let flag = reg.test(emailVal);

        // 判断 
        if (flag) {
            $('.email').siblings('span').text('邮箱输入正确').css('color', 'green');
            flag = true;
        } else {
            $('.email').siblings('span').text('邮箱输入错误').css('color', 'red');
            $('.email').focus();
            flag = true;
        }
        return flag;
    }

    // 验证昵称
    function nicknameCheck() {
        // alert('cc');

        let nicknameVal = $('.nickname').val();
        // console.log(nicknameVal);

        // 中文、英文、数字包括下划线：^[\u4E00-\u9FA5A-Za-z0-9_]+$
        let reg = /^[\u4E00-\u9FA5A-Za-z0-9_]+$/;

        let flag = reg.test(nicknameVal)

        // 判断
        if (flag) {
            $('.nickname').siblings('span').text('昵称可以使用').css('color', 'green');
            flag = true;
        } else {
            $('.nickname').siblings('span').text('昵称不可用').css('color', 'red');
            $('.nickname').focus();
            flag = false;
        }
        return flag;
    }

    // 点击按钮注册
    $('.btn').click(function () {
        // alert(12);
        /* // 当用户名格式正确时,标杆返回值只返回格式正确true,不判断用户名存在的情况 ===>  需要将ajax加参数 async 改为同步
        console.log(usernameCheck()); */

        // 判断: 当以上四项有一个输入不符合要求,则不能注册
        // 即: 当以上四项同时合法以外的任何情况,都不可以注册
        if (!(usernameCheck() && pwdCheck() && emailCheck() && nicknameCheck())) return;

        // 如果以上四项判断均合法,则重新获得最新用户输入的合法数据,提交注册
        let usernameVal = $('.username').val();
        let pwdVal = $('.pwd').val();
        let emailVal = $('.email').val();
        let nicknameVal = $('.nickname').val();
        // console.log(usernameVal,pwdVal,emailVal,nicknameVal);

        $.ajax({
            url: 'http://139.9.177.51:3333/p2p/reg',
            type: 'POST',
            data: {
                username: usernameVal,
                pwd: pwdVal,
                email: emailVal,
                nickname: nicknameVal
            },
            dataType: 'json',
            success: function (res) {
                // console.log(res);
                if (res.code == 200) {
                    alert('恭喜!注册成功!请重新登录一次~')
                    location.href = './login.html';
                } else {
                    alert('注册信息有误,抱歉,注册失败~~')
                }
            }
        })

    })

    // 密码框眼睛切换
    // 定义标杆
    let eyeFlag = false;
    $('.pwd').siblings('i').click(function () {
        // alert(12111);

        if (eyeFlag) {
            $('.pwd').siblings('i').removeClass('icon-biyan').addClass('icon-zhengyan-X');
            $('.pwd').attr('type', 'text');
        } else {
            $('.pwd').siblings('i').removeClass('icon-zhengyan-X').addClass('icon-biyan');
            $('.pwd').attr('type', 'password');
        }
        eyeFlag = !eyeFlag;
    })

    // 勾选服务协议,注册按钮生效
    $('#agree_box').click(function () {
        // 获取 #agree_box 的状态
        let checkStatus = $('#agree_box').prop('checked');
        // console.log(checkStatus);

        // 判断:
        if (checkStatus) {
            $('.btn').addClass('show').prop('disabled', false);
        } else {
            $('.btn').removeClass('show').prop('disabled','disabled');
        }
    })




})